perm filename SUIO.MAC[X,ALS] blob
sn#091993 filedate 1974-03-19 generic text, type T, neo UTF8
00100 ; SUBROUTINE SETAD(JFN,SPEED)
00200 ;OR SUBROUTINE SETAD(JFN)
00300 ;OR SUBROUTINE SETAD
00400 TITLE SETAD
00500 ENTRY SETAD
00600 ENTRY ADINP1
00700 ENTRY ADINP2
00800 ENTRY ADINP3
00900 ENTRY RELAD
01000 TEMP: BLOCK 1
01100 SETAD: 0
01200 MOVEM 1,TEMP
01300 HLRZ 1,0(16) ;IS THERE A JFN?
01400 ANDI 1,777000
01500 CAIE 1,320000
01600 JRST NONE
01700 HRLZ 1,@0(16)
01800 LSH 1,5
01900 IORM 1,OPN
02000 IORM 1,MTP
02100 IORM 1,OUTPT1
02200 IORM 1,OUTPT2
02300 IORM 1,OUTPT3
02400 IORM 1,REL
02500 HLRZ 1,1(16) ;IS THERE A SPEED?
02600 ANDI 1,777000
02700 CAIE 1,320000
02800 JRST NONE
02900 MOVE 1,@1(16) ;GET SPEED
03000 CAIN 1,↑D51200
03100 HRRZI 1,3
03200 CAIN 1,↑D25600
03300 HRRZI 1,2
03400 CAIN 1,↑D12800
03500 HRRZI 1,1
03600 CAIN 1,↑D6400
03700 HRRZI 1,0
03800 CAILE 1,3
03900 HRRZI 1,2
04000 IMULI 1,1000
04100 AOJA 1,.+2
04200 NONE: HRRZI 1,2001
04300 MOVEM 1,MTPWD
04400 OPN: INIT 0,117
04500 SIXBIT/ADC/
04600 0
04700 TTCALL 3,MSG
04800 MTP: MTAPE 0,MTPWD
04900 MOVE 1,TEMP
05000 JRA 16,0(16)
05100 MSG: ASCIZ/ CANNOT INIT ADC /
05200 MTPWD: 0
05300 0
05400 0
00100 ; SUBROUTINE ADINP1(NUM,ARRAY)
00200 ADINP1: 0
00300 MOVEM 1,TEMP
00400 MOVN 1,@0(16)
00500 HRLZM 1,ADR1
00600 MOVE 1,1(16)
00700 SOJ 1,0
00800 HRRM 1,ADR1
00900 OUTPT1: IN 0,ADR1
01000 CAIA 0,0
01100 JRST FAIL1
01200 MOVE 1,TEMP
01300 JRA 16,2(16)
01400 ADR1: 0
01500 0
01600 FAIL1: TTCALL 3,MES1
01700 JRST .-5
01800 MES1: ASCIZ /
01900 FAILURE IN ADINP1
02000 /
00100 ; SUBROUTINE ADINP2(NUM,ARRAY)
00200 ADINP2: 0
00300 MOVEM 1,TEMP
00400 MOVN 1,@0(16)
00500 HRLZM 1,ADR2
00600 MOVE 1,1(16)
00700 SOJ 1,0
00800 HRRM 1,ADR2
00900 OUTPT2: IN 0,ADR2
01000 CAIA 0,0
01100 JRST FAIL2
01200 MOVE 1,TEMP
01300 JRA 16,2(16)
01400 ADR2: 0
01500 0
01600 FAIL2: TTCALL 3,MES2
01700 JRST .-5
01800 MES2: ASCIZ /
01900 FAILURE IN ADINP2
02000 /
00100 ; SUBROUTINE ADINP3(NUM,ARRAY)
00200 ADINP3: 0
00300 MOVEM 1,TEMP
00400 MOVN 1,@0(16)
00500 HRLZM 1,ADR3
00600 MOVE 1,1(16)
00700 SOJ 1,0
00800 HRRM 1,ADR3
00900 OUTPT3: IN 0,ADR3
01000 CAIA 0,0
01100 JRST FAIL3
01200 MOVE 1,TEMP
01300 JRA 16,2(16)
01400 ADR3: 0
01500 0
01600 FAIL3: TTCALL 3,MES3
01700 JRST .-5
01800 MES3: ASCIZ /
01900 FAILURE IN ADINP3
02000 /
00100 RELAD: 0
00200 REL: RELEAS 0,0
00300 JRA 16,0(16)
00400 PRGEND
00100 ; SUBROUTINE SETDA(JFN,SPEED)
00200 ;OR SUBROUTINE SETDA(JFN)
00300 ;OR SUBROUTINE SETDA
00400 TITLE SETDA
00500 ENTRY SETDA
00600 ENTRY DAOUT
00650 ENTRY RELDA
00700 SETDA: 0
00800 HRRZI 1,0
00900 DPB 1,[POINT 2,OUTBIT,26]
01000 HLRZ 1,0(16) ;IS THERE A JFN?
01100 ANDI 1,777000
01200 CAIE 1,320000
01300 JRST NOJFN
01400 HRLZ 1,@0(16)
01500 LSH 1,5
01600 IORM 1,OPN
01700 IORM 1,OUTPT
01800 IORM 1,REL
01900 HLRZ 1,1(16) ;IS THERE A SPEED?
02000 ANDI 1,777000
02100 CAIE 1,320000
02200 JRST NOSPED
02300 MOVE 1,@1(16) ;GET SPEED
02400 CAIL 1,5
02500 NOJFN: HRRZI 1,1
02600 CAIA 0,0
02700 NOSPED: HRRZI 1,1
02800 GOON: DPB 1,[POINT 3,OUTBIT,32]
02900 OPN: OPEN 0,[117 ;MODE
03000 'AD ' ;DEVICE NAME
03100 0] ;NO BUFFER HEADERS
03200
03300 TTCALL 3,MSG
03400 JRA 16,0(16)
03500 MSG: ASCIZ/ CANNOT OPEN DA /
00100 ; SUBROUTINE DAOUT(NUM,BUF)
00200 OUTWC: 0
00300 3650 ;MAGIC BITS FOR 136.
00400 OUTBIT: 4000 ;BITS FOR D-A
00500 BLOCK 2
00600 DAOUT: 0
00700 HRRZ 1,1(16) ;GET BUF POINTER
00800 SOJ 1,1 ;NOW WE HAVE BUF-1
00900 HRRZM 1,OUTWC ;NOW WE HAVE 0,BUF-1
01000 MOVN 1,@0(16) ;GET -NUM
01100 HRLM 1,OUTWC ;NOW WE HAVE -NUM,BUF-1
01200 OUTPT: OUTPUT 0,OUTWC
01300 JRA 16,2(16)
00100 RELDA: 0
00200 REL: RELEAS 0,0
00300 JRA 16,0(16)
00400 PRGEND
00100 ; SUBROUTINE LOCK
00200 ; SUBROUTINE UNLOCK
00300 TITLE LOCK
00400 ENTRY LOCK
00500 ENTRY UNLOCK
00600 LOCK: 0
00700 CALLI 400076
00800 JRA 16,0(16)
00900 UNLOCK: 0
01000 CALLI 400077
01100 JRA 16,0(16)
01200 PRGEND
00100 TITLE MAGSTF
00200 ; SUBROUTINE SETMAG(NUM)
00300 ; SUBROUTINE REWIND
00400 ; SUBROUTINE GMAGRC(ARRAY,LENGTH)
00500 ; SUBROUTINE PMAGRC(ARRAY,LENGTH)
00600 ; SUBROUTINE MCLOSE
00700 ; SUBROUTINE RELMAG
00800 ; SUBROUTINE NEXFIL
00900 ; SUBROUTINE PREFIL
01000 ENTRY SETMAG
01100 ENTRY REWIND
01200 ENTRY GMAGRC
01300 ENTRY PMAGRC
01400 ENTRY MCLOSE
01500 ENTRY RELMAG
01600 ENTRY NEXFIL
01700 ENTRY PREFIL
01800 TEMP: 0
01900 ADR: BLOCK 2
02000 MT1: SIXBIT/MTA1/
02100 MT0: SIXBIT/MTA0/
00100 SETMAG: 0
00200 MOVEM 0,TEMP
00300 MOVE 0,MT0
00400 MOVEM 0,MGTAPE
00500 MOVE 0,@0(16)
00600 JUMPE 0,.+3
00700 MOVE 0,MT1
00800 MOVEM 0,MGTAPE
00900 INIT 5,17
01000 MGTAPE: 0
01100 0
01200 JRST .+3
01300 MOVE 0,TEMP
01400 JRA 16,0(16)
01500 TTCALL 3,SETERR
01600 HALT
01700 SETERR: ASCIZ /
01800 ERROR IN SETMAG - HALTING
01900 /
02000 REWIND: 0
02100 MTAPE 5,1
02200 JFCL
02300 MTAPE 5,0
02400 JRA 16,0(16)
00100 GMAGRC: 0
00200 MOVEM 1,TEMP
00300 MOVN 1,@1(16)
00400 HRLZM 1,ADR
00500 HRRZ 1,0(16)
00600 SOJ 1,0
00700 HRRM 1,ADR
00800 IN 5,ADR
00900 CAIA 1,0
01000 TTCALL 3,RERR
01100 MOVE 1,TEMP
01200 JRA 16,2(16)
01300 RERR: ASCIZ /
01400 ERROR IN MAGTAPE READING - CONTINUING
01500 /
00100 PMAGRC: 0
00200 MOVEM 1,TEMP
00300 MOVN 1,@1(16)
00400 HRLZM 1,ADR
00500 HRRZ 1,0(16)
00600 SOJ 1,0
00700 HRRM 1,ADR
00800 OUT 5,ADR
00900 CAIA 1,0
01000 TTCALL 3,WERR
01100 MOVE 1,TEMP
01200 JRA 16,2(16)
01300 WERR: ASCIZ /
01400 ERROR IN MAGTAPE WRITING - CONTINUING
01500 /
00100 MCLOSE: 0
00200 CLOSE 5,0
00300 JRA 16,0(16)
00400 RELMAG: 0
00500 RELEASE 5,0
00600 JRA 16,0(16)
00700 NEXFIL: 0
00800 MTAPE 5,16
00900 MTAPE 5,0
01000 JRA 16,0(16)
01100 PREFIL: 0
01200 MTAPE 5,17
01300 MTAPE 5,0
01400 MTAPE 5,17
01500 MTAPE 5,0
01600 STATO 5,4000
01700 MTAPE 5,16
01800 MTAPE 5,0
01900 JRA 16,0(16)
02000 PRGEND
00100 TITLE XGPSTF
00200 ; SUBROUTINE SETXGP
00300 ENTRY SETXGP
00400 ; SUBROUTINE OUTXG1(BUFFER,NUM)
00500 ENTRY OUTXG1
00600 ; SUBROUTINE OUTXG2(BUFFER,NUM)
00700 ENTRY OUTXG2
00800 ; SUBROUTINE OUTXG3(BUFFER,NUM)
00900 ENTRY OUTXG3
01000 ; SUBROUTINE RELXGP
01100 ENTRY RELXGP
01200 TEMP: 0
01300 ADR: 0
01400 0
01500 ADR1: 0
01600 0
01700 ADR2: 0
01800 0
01900 ADR3: 0
02000 0
02100 SETXGP: 0
02200 INIT 10,1117
02300 SIXBIT /XGP/
02400 0
02500 JRST .-3
02600 JRA 16,0(16)
00100 OUTXG1: 0
00200 MOVEM 1,TEMP
00300 MOVN 1,@1(16)
00400 HRLZM 1,ADR1
00500 MOVE 1,0(16)
00600 SOJ 1,0
00700 HRRM 1,ADR1
00800 OUT 10,ADR1
00900 CAIA 0,0
01000 JRST FAIL1
01100 MOVE 1,TEMP
01200 JRA 16,2(16)
01300 FAIL1: TTCALL 3,MES1
01400 JRST .-3
01500 MES1: ASCIZ /
01600 FAILURE IN OUTXG1
01700 /
00100 OUTXG2: 0
00200 MOVEM 1,TEMP
00300 MOVN 1,@1(16)
00400 HRLZM 1,ADR2
00500 MOVE 1,0(16)
00600 SOJ 1,0
00700 HRRM 1,ADR2
00800 OUT 10,ADR2
00900 CAIA 0,0
01000 JRST FAIL2
01100 MOVE 1,TEMP
01200 JRA 16,2(16)
01300 FAIL2: TTCALL 3,MES2
01400 JRST .-3
01500 MES2: ASCIZ /
01600 FAILURE IN OUTXG2
01700 /
00100 OUTXG3: 0
00200 MOVEM 1,TEMP
00300 MOVN 1,@1(16)
00400 HRLZM 1,ADR3
00500 MOVE 1,0(16)
00600 SOJ 1,0
00700 HRRM 1,ADR3
00800 OUT 10,ADR3
00900 CAIA 0,0
01000 JRST FAIL3
01100 MOVE 1,TEMP
01200 JRA 16,2(16)
01300 FAIL3: TTCALL 3,MES3
01400 JRST .-3
01500 MES3: ASCIZ /
01600 FAILURE IN OUTXG3
01700 /
00100 RELXGP: 0
00200 RELEAS 10,0
00300 JRA 16,0(16)
00400 PRGEND
00100 TITLE NULL
00200 ENTRY NULL
00300 NULL: 0
00400 JRA 16,0(16)
00500 END